import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.filechooser.*;

import java.io.*;

public class WindowReader extends JFrame implements ActionListener {

   JFileChooser fileDialog ;

   JMenuBar menubar;

   JMenu menu;

   JMenuItem itemSave,itemOpen;

   JTextArea text;

   BufferedReader in;  

   FileReader fileReader;

   BufferedWriter out; 

   FileWriter fileWriter;

   WindowReader() {

      init();

      setSize(300,400);

      setVisible(true);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

   }

   void init() {

      text=new JTextArea(10,10);

      text.setFont(new Font("楷体_gb2312",Font.PLAIN,28));

      add(new JScrollPane(text),BorderLayout.CENTER);

      menubar=new JMenuBar();

      menu=new JMenu("文件"); 

      itemSave=new JMenuItem("保存文件"); 

      itemOpen=new JMenuItem("打开文件"); 

      itemSave.addActionListener(this); 

      itemOpen.addActionListener(this);

      menu.add(itemSave); 

      menu.add(itemOpen); 

      menubar.add(menu);

      setJMenuBar(menubar);

      fileDialog=new JFileChooser();

      FileNameExtensionFilter filter = new FileNameExtensionFilter("java文件", "java");

      fileDialog.setFileFilter(filter);

  

   }

   public void actionPerformed(ActionEvent e) {

      if(e.getSource()==itemSave) {

         int state=fileDialog.showSaveDialog(this);

         if(state==JFileChooser.APPROVE_OPTION) {

           try{ 

               File dir=fileDialog.getCurrentDirectory();

               String name=fileDialog.getSelectedFile().getName();

               File file=new File(dir,name);

               fileWriter=new FileWriter(file);

               out=new BufferedWriter(fileWriter); 

               out.write(text.getText());

               out.close();

               fileWriter.close();

           }

           catch(IOException exp){}

         }      

       }

       else if(e.getSource()==itemOpen) {

           int state=fileDialog.showOpenDialog(this);

           if(state==JFileChooser.APPROVE_OPTION) {

                text.setText(null);

                try{    

                    File dir=fileDialog.getCurrentDirectory();

                    String name=fileDialog.getSelectedFile().getName();

                    File file=new File(dir,name);

                    fileReader=new FileReader(file);

                    in=new BufferedReader(fileReader); 

                    String s=null;

                    while((s=in.readLine())!=null) {

                       text.append(s+"\n");

                    }

                    in.close();

                    fileReader.close();

                 }

                 catch(IOException exp){}

           }  
    

   


    }

   }




}
